<template>
    <div class="wrapper">

        <div style="margin: 100px auto ;background-color: #fff;width: 350px;height: 350px;padding:20px;border-radius: 10px">
            <div style="margin: 20px 0; text-align: center; font-size: 24px"><b>注 册</b></div>
          <el-form :rules="rules" :model="user" ref="user">
            <el-form-item prop="username">
              <el-input size="medium" style="margin: 5px 0" prefix-icon="el-icon-user" v-model="user.username"></el-input>
            </el-form-item>
            <el-form-item prop="password">
              <el-input size="medium" style="margin: 5px 0" prefix-icon="el-icon-lock" show-password v-model="user.password"></el-input>
            </el-form-item>
            <el-form-item prop="confirmpassword">
              <el-input size="medium" style="margin: 5px 0" prefix-icon="el-icon-lock" show-password v-model="user.confirmpassword"></el-input>
            </el-form-item>
            <el-form-item style="margin: 5px 0; text-align: right">
                <el-button type="primary" size="small" onautocomplete="off" @click="login('user')"
                           v-loading.fullscreen.lock="rLoading">注册</el-button>
                <el-button type="warning" size="small" onautocomplete="off" @click="$router.push('/login')">返回登录</el-button>
            </el-form-item>
          </el-form>
        </div>

    </div>
</template>

<script>
import {showLoading, hideLoading} from '../../utils/loading'
    export default {
        name: "Login",
        data(){
            return{
                user:{
                    username:'',
                    password:'',
                    confirmpassword:''
                },
              rLoading: false,
              rules: {
                username: [
                  { required: true, message: '请输入用户名', trigger: 'blur' },
                  { min: 1, max: 7, message: '长度在 3 到 5 个字符', trigger: 'blur' }
                ],
                password: [
                  { required: true, message: '请输入密码', trigger: 'blur' },
                ],
                confirmpassword: [
                  { required: true, message: '请输入确认密码', trigger: 'blur' },
                ]
              }
            }
        },
        methods: {
            login(user){
              showLoading()
              this.$refs[user].validate((valid) =>{
                if (valid){ // 表单校验合法
                  if (this.user.password != this.user.confirmpassword){
                    this.$message.error("两次密码不一致")
                    this.rLoading = false;
                    return false;
                  }
                  this.request.post('/user/register',this.user).then(res => {
                    if (res.status === '200'){
                      setTimeout(() => {
                        hideLoading()
                      }, 2000);
                      this.$message.success("注册成功")
                      this.$router.push('/login')
                    }else {
                      this.$message.error(res.msg)
                    }
                  })
                }else {
                  return false;
                }
              });

            },
            reset(formName){
              this.$refs[formName].resetFields();
            }
        }
    }
</script>

<style scoped>
    .wrapper{
        height: 100vh;
        /*background-color: rebeccapurple;*/
        background-image: linear-gradient(to bottom right, #FC466B, #3F5EFB);
        overflow: hidden;
    }
</style>